package com.ruoyi.blog.service;

import com.qiniu.api.auth.AuthException;
import com.ruoyi.blog.domain.BlogArticle;
import com.ruoyi.common.core.domain.AjaxResult;
import org.json.JSONException;

import java.util.List;

/**
 * 博客文章Service接口
 *
 * @author 刘哲贤
 * @date 2022-08-15
 */
public interface IBlogArticleService {
    /**
     * 查询博客文章
     *
     * @param id 博客文章主键
     * @return 博客文章
     */
    BlogArticle selectBlogArticleById(Integer id);

    /**
     * 查询博客文章列表
     *
     * @param blogArticle 博客文章
     * @return 博客文章集合
     */
    List<BlogArticle> selectBlogArticleList(BlogArticle blogArticle);

    /**
     * 新增博客文章
     *
     * @param blogArticle 博客文章
     * @return 结果
     */
    int insertBlogArticle(BlogArticle blogArticle);

    /**
     * 修改博客文章
     *
     * @param blogArticle 博客文章
     * @return 结果
     */
    int updateBlogArticle(BlogArticle blogArticle);

    /**
     * 批量删除博客文章
     *
     * @param ids 需要删除的博客文章主键集合
     * @return 结果
     */
    int deleteBlogArticleByIds(Integer[] ids);

    /**
     * 删除博客文章信息
     *
     * @param id 博客文章主键
     * @return 结果
     */
    int deleteBlogArticleById(Integer id);

    /**
     * 博客端获取文章详情
     *
     * @param id
     * @return
     */
    BlogArticle getBlogArticleById(Integer id);

    /**
     * 博客端获取文章列表
     *
     * @param blogArticle
     * @return
     */
    List<BlogArticle> selectBlogArticleListFront(BlogArticle blogArticle);

    /**
     * 查询博客总条数
     *
     * @param blogArticle
     * @return
     */
    Long selectBlogArticleListFrontTotal(BlogArticle blogArticle);

    /**
     * 获取七牛云token
     *
     * @return
     */
    AjaxResult getToken() throws AuthException, JSONException;
}
